// // 相关文档 https://vuex.vuejs.org/zh/api/#subscribeaction
// const NAMESPACE = '@@loading'

// const createLoadingPlugin = ({
//   namespace = NAMESPACE,
//   includes = [],
//   excludes = []
// } = {}) => {
//   return store => {
//     if (store.state[namespace]) {
//       throw new Error(
//         `createLoadingPlugin: ${namespace} exited in current store`
//       )
//     }

//     store.registerModule(namespace, {
//       namespaced: true,
//       state: {
//         global: false,
//         effects: {

//         }
//       },
//       mutations: {
//         SHOW (state, { payload }) {
//           state.global = true
//           state.effects = {
//             ...state.effects,
//             [payload]: true
//           }
//         },
//         HIDE (state, { payload }) {
//           state.global = false
//           state.effects = {
//             ...state.effects,
//             [payload]: false
//           }
//         }
//       }
//     })

//     store.subscribeAction({
//       before: action => {
//         console.log(`before action ${action.type}`)
//         if (shouldEffect(action, includes, excludes)) {
//           store.commit({ type: namespace + '/SHOW', payload: action.type })
//         }
//       },
//       after: action => {
//         console.log(`after action ${action.type}`)
//         if (shouldEffect(action, includes, excludes)) {
//           store.commit({ type: namespace + '/HIDE', payload: action.type })
//         }
//       }
//     })
//   }
// }
// //是否需要弹窗
// function shouldEffect ({ type }, includes, excludes) {
//   //不配置默认的情况下是显示loading
//   if (includes.length === 0 && excludes.length === 0) {
//     return true
//   }

//   if (includes.length > 0) {
//     return includes.indexOf(type) > -1
//   }

//   return excludes.length > 0 && excludes.indexOf(type) === -1
// }

// export default createLoadingPlugin
// // 需要在vuex中引入并注册成插件：
// /**
// import createLoadingPlugin from 'utils/vuex-loading'
// export default new Vuex.Store({
//   plugins: [createLoadingPlugin()],
//   state: {
//     // loading: false,
//     direction: 'forward'
//   }
// })
// **/
